1. Field of the Invention
The present invention relates to a method, system, and program for scheduling operations called by a task on a real-time or non-real-time processor.
2. Description of the Related Art
General operating systems may be classified into three general categories associated with completion of a task or operations (processing steps) called by a task within a predefined time interval. The three general categories are known as hard real-time operating systems, soft real-time operating systems, and non-real-time operating systems. A hard real-time operating system guarantees that deadlines will be met. Processing steps in a hard real-time operating system are known as deterministic operations. The terms hard real-time processing steps and deterministic operations are used interchangeably. In hard real-time systems, if a deterministic operation completes correctly but takes longer than its given amount of time, the operation fails. A soft real-time system is less restrictive than a hard real-time system. In a soft real-time system, critical operations are given priority over non-critical operations (e.g., processes). However, the scheduling-deadline requirements in a soft real-time system are less severe than those in a hard real-time system. For example, in a soft real-time system if an operation called by a soft real-time task completes correctly but takes longer than the amount of time allotted for such operation, then the result may still be useful. However, in a hard real-time system, if an operation completes correctly but takes longer than the amount of time allotted for such operation, then the result will not be useful. In a non-hard real-time system, the operations are non-deterministic operations and as such are not subject to real-time latency constraints.
A non-hard real time task comprises a task that executes non-deterministic operations, which are not required to complete within a given deadline to be successful. A hard real time task comprises a task that executes deterministic operations that are required to occur before a given deadline. In soft real-time, hard real-time, and non-hard real-time systems, a scheduler is utilized to determine the amount of resources (e.g., CPU time) that a process is allotted for execution. The scheduler is part of the kernel in an operating system that initiates and terminates operating system processes and threads. In addition, the scheduler may periodically decide which thread should be run next and switch control to that thread.
In the copending and commonly assigned patent application entitled “Hard Real-Time Response”, by Paul E. McKenney and Dipankar Sarma, having U.S. application Ser. No. 11/017,083, filed on Dec. 20, 2004, processing units are designated as hard real-time or non-hard real time. Operations (processing steps) to be deterministic are processed by the hard real-time processor and operations steps determined to be non-deterministic are processed by the non-hard real-time processor.